package lumis.portal.css.serialization;

import lumis.portal.PortalException;
import lumis.portal.serialization.BaseSerializationContext;
import lumis.portal.serialization.DeserializationContext;
import lumis.portal.serialization.SerializationContext;

/**
 * Manager Interface for Css serialization
 *
 * @version $Revision: 6239 $ $Date: 2007-03-26 15:50:32 -0300 (Mon, 26 Mar 2007) $
 * @since 4.0.7
 */
public interface ICssSerializationManager
{
	// DESERIALIZATION
	
	/**
	 * Deserialize a CSS
	 * @param deserializationContext
	 * @param cssSerializableConfig
	 * @throws PortalException
	 */
	public void deserialize(DeserializationContext deserializationContext, CssSerializableConfig cssSerializableConfig) throws PortalException;

	// SERIALIZATION
	
	/**
	 * Serialize a CSS
	 * @param serializationContext
	 * @param cssId
	 * @return
	 * @throws PortalException
	 */
	public CssSerializableConfig serialize(SerializationContext serializationContext, String cssId) throws PortalException;

	// GENERAL
	
	/**
	 * Set up a serialization context, defining settings such as class aliases, field aliases, transient fields, omitted collections etc.
	 * @param serializationContext
	 */
	public void setupSerializationContext(BaseSerializationContext serializationContext);
}
